﻿using System;
using System.Collections.Generic;
using System.Text;

namespace DbFrame.Core.Abstract
{
    using DbFrame.BaseClass;
    using DbFrame.Core.Interface;
    using System.Data;

    public abstract class AbstractQueryMappingData<T> : AbstractQueryBase, IQueryMappingData<T>
    {
        public abstract T Frist();
        public abstract List<T> ToList();

        public abstract TReturn Frist<TReturn>();
        public abstract List<TReturn> ToList<TReturn>();
        public abstract DataTable ToTable();
        public abstract List<DbParam> GetDbParam();
        public abstract SQL ToSql();
        public abstract int Count();
        //
        public abstract IQueryMappingData Top(int Top);
        public abstract IQueryMappingData Distinct();
        public abstract IQueryMappingData TakePage(int PageNumber, int PageSize);


    }
}
